from transformers import AutoModelForCausalLM,AutoTokenizer,pipeline
# 设置具体包含config.json的目录
model_dir=r"D:\code\HuggingFaceStu\transformersTest\model\uer\gpt2-chinese-cluecorpussmall\models--uer--gpt2-chinese-cluecorpussmall\snapshots\c2c0249d8a2731f269414cc3b22dff021f8e07a3"

# 加载模型和分词器
model=AutoModelForCausalLM.from_pretrained(model_dir)
tokenizer=AutoTokenizer.from_pretrained(model_dir)

# 使用加载的模型和分词器创建生成文本的pipline
# generator = pipeline("text-generation",model=model,tokenizer=tokenizer) 使用cpu
generator = pipeline("text-generation",model=model,tokenizer=tokenizer,device="cuda")

# 生成文本
output=generator(
    "你好，我是一名优秀的大学生", # 生成文本的输入种子文本，模型会根据这个初始化文本，生成后序文本
    max_length=100, # 指定生成文本的长度 最多100tokens
    num_return_sequences=1, # 指定返回多少个独立生成的文本序列 值为1表示只生成并返回一段文本
    truncation=True, # 是否截断输入文本以适应模型的最大输入长度 true：截断 false：不截断
    temperature=0.7, # 控制内容的随机性，越低，越保守；越高，越随机
    top_k=50, # 模型在每一步生成时，仅从概率最高的k个词中选择下一个词
    top_p=0.95, # 限制模型的词汇选择范围
    clean_up_tokenization_spaces=False # 生成的文本中是否清理分词时，引入的空格 true消除空格 false保留空格
)

print(output)